﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Web.Util;
using System.Collections;

namespace HelpDesk
{
    public partial class CreacionFlujo : System.Web.UI.Page
    {
        string operacion;
        int id_problema;
        int id_flujo;
        bool modificar = false;
        int contadorIDPaso;
        char[] charsToTrim = { '.', '_', ' '};
        #region Page Load
        /// <summary>
        /// Se selecciona que operacion cuando carga la pagina
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            
            LlenarDDLEmpleados();
            operacion = Request.QueryString["op"]; //se captura el parametro, si es Crear, Modificar, Eliminar usuario
            switch (operacion)
            {
                case("crear"):
                    btnGuardar.Text = "Guardar";
                    btnModificar.Visible = false;
                    //LlenarDatalist_Problema();
                    txtIDFlujo.Visible = false;
                    if (string.Compare(txtPaso.Text, "") == 0)
                    {
                        contadorIDPaso = 1;
                        txtPaso.Text = "1";
                    }
                    else
                    {
                        contadorIDPaso = Convert.ToInt32(txtPaso.Text);
                    }
                    modificar = false;
                    esmodifica = false;
                    btnOK.Visible = false;
                    txtDescripcionProblema.Visible = false;
                    LlenarDatalist_Problema();
                    break;
                case("modificar"):
                    btnGuardar.Text = "Guardar";
                    btnGuardar.Visible = true;
                    btnModificar.Visible = true;
                    btnIngresar.Visible = false;
                    btnBorrar.Visible = false;
                    modificar = true;
                    esmodifica = true;
                    txtIDFlujo.Visible = true;
                    btnOK.Visible = true;
                    //llenarDatosParaModificar();
                    SeOcultaloquesedebe();
                    txtPaso.Text = "";


                   break;
                case("eliminar"):
                   btnGuardar.Text = "Eliminar";
                   btnBorrar.Visible = false;
                   txtIDFlujo.Visible = true;
                   break;
            }
        }
        #endregion

        #region Llenar datos
        /// <summary>
        /// Se consulta en la base de datos las infraestructuras para mostrarlas en un ddl
        /// </summary>
        private void LlenarDatalist_Problema()
        {
            if (modificar == false)
            {
                QueryBuilder objBusca_problemas = new QueryBuilder();
                QueryBuilder IDflujo = new QueryBuilder();
                DataTable tbResultadoConsulta = new DataTable();
                DataTable datatableid_flujo = new DataTable();
                //busca PROBLEMAS
                string sqlbuscaproblemas = "SELECT DESCRIPCION FROM PROBLEMA";
                string sql_id_flujo = "SELECT ID_FLUJO FROM FLUJO";
                tbResultadoConsulta = objBusca_problemas.EjecutarQuery(sqlbuscaproblemas);
                datatableid_flujo = IDflujo.EjecutarQuery(sql_id_flujo);
                //for (int j = 0; j < datatableid_flujo.Rows.Count; j++)
                //{
                    lblIDFlujo.Text = (Convert.ToInt32(datatableid_flujo.Rows[datatableid_flujo.Rows.Count -1].ItemArray[0]) + 1).ToString();
                    id_flujo = Convert.ToInt32(datatableid_flujo.Rows[datatableid_flujo.Rows.Count-1].ItemArray[0]) + 1;
                //}
                for (int i = 0; i < tbResultadoConsulta.Rows.Count; i++)
                {
                    ddlIDProblema.Items.Add(tbResultadoConsulta.Rows[i].ItemArray[0].ToString());
                }
            }
        }
        private void LlenarDDLEmpleados()
        {
            QueryBuilder objBusca_usuario = new QueryBuilder();
            DataTable tbResultadoConsulta = new DataTable();
            //busca usuarios que no tengan asignado un flujo (tabla ASIG_PASO_FLUJO)
            string sqlbuscausuario = "SELECT USUARIO.ID_USUARIO FROM USUARIO WHERE NOT EXISTS (SELECT USUARIO_ENCARGADO FROM ASIG_PASO_FLUJO) ";
            tbResultadoConsulta = objBusca_usuario.EjecutarQuery(sqlbuscausuario);
            for (int i = 0; i < tbResultadoConsulta.Rows.Count; i++)
            {
                ddlAsignaEmpleado.Items.Add(tbResultadoConsulta.Rows[i].ItemArray[0].ToString());
            }
 
        }
        #endregion

        #region Parte de Guardar
        private void IngresarAlListBox()
        {
            bool existepaso = false;
            string pasos = "";

            for (int i = 0; i < lbDescripcion.Items.Count; i++)
            {
                pasos += lbDescripcion.Items[i].ToString() + ";";
            }
            //string[] filas = pasos.Trim(charsToTrim).Split(';');
            string[] filas = pasos.ToString().Trim(charsToTrim).Split(';');
            for (int j = 0; j < filas.Length; j++)
            {
//                string[] npasos = filas[j].Trim(charsToTrim).Split('|');
                string[] npasos = filas[j].ToString().Trim(charsToTrim).Split('|');
                for (int i = 0; i < npasos.Length; i++)
                {
                    if (string.Compare(npasos[0].Trim(charsToTrim).ToString(), txtPaso.Text) == 0)
                    {
                        existepaso = true;
                    }
                    //lblMensaje.Text  = npasos[i].ToString();
                }
            }

            if (existepaso == false)
            {
                //lbDescripcion.Items.Add(txtPaso.Text.PadLeft(5,' ') + " | " + txtDescripcion.Text.PadLeft(75,' ') + " | " + txtTiempoEjecucion.Text);
                lbDescripcion.Items.Add(txtPaso.Text.PadRight(5, '.') + "| " + txtDescripcion.Text.PadRight(75, '.') + "| " + txtTiempoEjecucion.Text);
                if (modificar == false)
                {
                    contadorIDPaso++;
                    txtPaso.Text = contadorIDPaso.ToString();
                }
                //se ordena y limpian los textbox
                OrdenarListBox(lbDescripcion);
                txtDescripcion.Text = "";
                txtTiempoEjecucion.Text = "00.00";
            }
            else
            {
                if (esmodifica == false) // si op=modificar es falso
                {
                    lblMensajeAccion.Text = "El Paso No.: " + txtPaso.Text + " ya existe";
                    contadorIDPaso = Convert.ToInt32(txtPaso.Text);
                }
                else 
                {
                    //lbDescripcion.Items.Add(txtPaso.Text.PadLeft(5, ' ') + " | " + txtDescripcion.Text.PadLeft(75, ' ') + " | " + txtTiempoEjecucion.Text);
                    lbDescripcion.Items.Add(txtPaso.Text.PadRight(5, '.') + "| " + txtDescripcion.Text.PadRight(75, '.') + "| " + txtTiempoEjecucion.Text);
                    lblMensaje.Text = "El paso ha sido modificado e ingresado al flujo correctamente.";
                    btnModificar.Visible = true;
                    btnIngresar.Visible = false;
                    txtPaso.Text = "";
                    txtDescripcion.Text = "";
                    txtTiempoEjecucion.Text = "";
                }
            }
        }
        #endregion 
        #region Crear Flujo
        private void ObteneryGuardar()
        {
            if (modificar == false)
            {
                QueryBuilder objInserta = new QueryBuilder();
                for (int i = 0; i < lbDescripcion.Items.Count; i++)
                {
                    string[] pasos = lbDescripcion.Items[i].ToString().Trim(charsToTrim).Split('|');
                    int nodepaso = Convert.ToInt32(pasos[0].Trim(charsToTrim).ToString());
                    int pasoanterior = Convert.ToInt32(pasos[0].Trim(charsToTrim).ToString()) - 1;
                    int pasosiguiente = Convert.ToInt32(pasos[0].Trim(charsToTrim).ToString()) + 1;
                    string sqlinserta = "INSERT INTO FLUJO(ID_FLUJO,PASO,TIEMPO_EJECUCION,DESCRIPCION_FLUJO,DESCRIPCION_PASO,PROBLEMA,PASO_ANTERIOR,PASO_SIGUIENTE,TIEMPO_EJECUTADO,PASO_FINAL)" +
                        "VALUES (" +
                        id_flujo +
                        "," + nodepaso +
                        ",'" + pasos[2].Trim(charsToTrim).ToString() +
                        "','" + txtDescripcionFlujo.Text.Trim(charsToTrim) +
                        "','" + pasos[1].Trim(charsToTrim).ToString() +
                        "'," + id_problema +
                        "," + pasoanterior +
                        "," + pasosiguiente +
                        "," + "NULL" +
                        "," + "'N'" + ")";
                    //validaciones antes de insertar
                    objInserta.EjecutarNoQuery(sqlinserta);
                }
                lblMensaje.Text = "Flujo creado exitosamente";
                txtIDFlujo.Text = "";
                Limpiar();
                lblIDFlujo.Text = Convert.ToString(Convert.ToInt32(lblIDFlujo.Text) + 1);
            }
            else
            {   
                QueryBuilder objInserta = new QueryBuilder();
                for (int i = 0; i < lbDescripcion.Items.Count; i++)
                {
                    string[] pasos = lbDescripcion.Items[i].ToString().Trim(charsToTrim).Split('|');
                    int nodepaso = Convert.ToInt32(pasos[0].Trim(charsToTrim).ToString());
                    int pasoanterior = Convert.ToInt32(pasos[0].Trim(charsToTrim).ToString()) - 1;
                    int pasosiguiente = Convert.ToInt32(pasos[0].Trim(charsToTrim).ToString()) + 1;
                    string sqlupdate = "UPDATE FLUJO SET FLUJO.PASO =" + nodepaso 
                        + ", TIEMPO_EJECUCION =" + pasos[2].Trim(charsToTrim).ToString() 
                        + ", DESCRIPCION_PASO= '" + txtDescripcionFlujo.Text.Trim(charsToTrim) 
                        + "' WHERE FLUJO.ID_FLUJO = " + id_flujo 
                        + " AND PASO= " + nodepaso;
                    //validaciones antes de insertar
                    //objInserta.EjecutarNoQuery(sqlupdate);
                }
                lblMensaje.Text = "Flujo modificado exitosamente";
                Limpiar();
                txtIDFlujo.Text = "";
                lblMensaje.Text = "";
                lblMensajeAccion.Text = "";
                btnModificarOK.Visible = true;
                btnModificar.Visible = false;
                txtPaso.Visible = false;
                txtDescripcionFlujo.Visible = false;
                txtDescripcionProblema.Visible = false;
                txtPaso.Visible = false;
                txtDescripcion.Visible = false;
                txtTiempoEjecucion.Visible = false;
                lblNoPaso.Visible = false;
                lblDescripcion.Visible = false;
                lblTiempoEjecucion.Visible = false;
 
            }
        }
        #endregion 
        private void Limpiar()
        {
            //txtIDFlujo.Text = "";
            txtPaso.Text = "";
            txtDescripcionFlujo.Text = "";
            txtDescripcionProblema.Text = "";
            txtPaso.Text = "";
            txtDescripcion.Text = "";
            txtTiempoEjecucion.Text = "";
            lbDescripcion.Items.Clear();
        }
        
        #region EVENTOS BOTONES GUARDAR / Crear / Modificar / Eliminar
        /// <summary>
        /// Evento que ejecuta la funcion dependiendo de la operacion que esta activa en ese momento.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            //RequiredFieldValidator1.Enabled = false;
            //RequiredFieldValidator2.Enabled = false;
            //RequiredFieldValidator4.Enabled = false;
            if (string.Compare(txtDescripcionFlujo.Text, "") == 0 || lbDescripcion.Items.Count ==0)
            {
                lblMensaje.Text = "Debe ingresar una descripción del flujo y al menos un paso para el flujo";
            }
            else
            {
                ObteneryGuardar();
                lblMensaje.Text = "";
                btnGuardar.Visible = false;
                ddlIDProblema.Enabled = true;
                ddlIDProblema.Items.Clear();
                LlenarDatalist_Problema();
            }
            
        }
        #endregion
        
       
        
        protected void btnIngresar_Click(object sender, EventArgs e)
        {
            ValidarDato formatohora = new ValidarDato();
            lblMensajeAccion.Text = "";
            if (string.Compare(txtDescripcion.Text, "") == 0)
            {
                lblMensajeAccion.Text = "Debe ingresar una descripción del paso";
            }
            else
            {
                if (formatohora.FormatoHora(txtTiempoEjecucion.Text) == true)
                {
                    IngresarAlListBox();
                    lblMensajeAccion.Text = "";
                }
                else 
                {
                    lblMensajeAccion.Text = "Verifique el formato de tiempo de ejecución [00.00]";
                }
            }
            if (lbDescripcion.Items.Count == 0)
            {
                ddlIDProblema.Enabled = true;
                btnGuardar.Visible = false;
            }
            else
            {
                btnGuardar.Visible = true;
                ddlIDProblema.Enabled = false;
            }
           
            
        }
        string temporal;
        private void AccionDatosAModificar()
        {
            try
            {
                //si la op=modificar tonces me salen todos los datos y los txt vacios, si es true se llenan
                // los datos segun el selected item del listbox. sino la op=crear tonces
                string selecitems = lbDescripcion.SelectedValue.ToString();
                string[] splitItems = selecitems.Trim(charsToTrim).Split('|');
                if (modificar == true)
                {
                    
                    //lbDescripcion.Items.Remove(lbDescripcion.SelectedValue.ToString());
                    temporal = lbDescripcion.SelectedValue.ToString();
                    txtPaso.Text = splitItems[0].Trim(charsToTrim).ToString();
                    txtDescripcion.Text = splitItems[1].Trim(charsToTrim).ToString();
                    txtTiempoEjecucion.Text = splitItems[2].ToString();
                }
                //lbDescripcion.Items.Remove(splitItems[0].ToString().PadLeft(5,' ') + " | " + splitItems[1].ToString().PadLeft(75,' ') + " | " + splitItems[2].ToString());
                //lbDescripcion.Items.Remove(lbDescripcion.SelectedValue.ToString());
            }
            catch (Exception e) 
            {
                e.Message.ToString();
            }
        }
        bool esmodifica = false;
        bool sehacemodificacion = false;
        protected void btnModificar_Click(object sender, EventArgs e)
        {
            ValidarDato formatohora = new ValidarDato();
            //RequiredFieldValidator1.Enabled = true;
            RequiredFieldValidator2.Enabled = true;
            //RequiredFieldValidator4.Enabled = true;
            string selecitems = lbDescripcion.SelectedValue.ToString();
            string[] splitItems = selecitems.Trim(charsToTrim).Split('|');
            for (int i = 0; i < lbDescripcion.Items.Count; i++)
            {
                if (lbDescripcion.Items[i].Selected == true)
                {
                    //AccionDatosAModificar();
                    sehacemodificacion = true;
                    break;
                }
                else
                {
                    sehacemodificacion = false;
                    //lbDescripcion.Items.Remove(txtPaso.Text + " | " + txtDescripcion.Text + " | " + txtTiempoEjecucion.Text);
                }
            }
            if (sehacemodificacion == false)
            {
                lblMensajeAccion.Text = "Seleccione del flujo el paso a modificar -->";
                btnModificarOK.Visible = true;
                lblMensaje.Text = "";

            }
            else
            {
                //if (formatohora.FormatoHora(txtTiempoEjecucion.Text) == true)
                //{
                    
                    string abc = lbDescripcion.SelectedValue.ToString();
                    string[] ddd = abc.Trim(charsToTrim).Split('|');
                        txtPaso.Text = ddd[0].Trim(charsToTrim).ToString();
                    lbDescripcion.Items.Remove(lbDescripcion.SelectedValue.ToString());
                    lbDescripcion.Items.Add(txtPaso.Text.PadRight(5, '.') + "| " + txtDescripcion.Text.PadRight(75, '.') + "| " + txtTiempoEjecucion.Text);
                    lblMensaje.Text = "El paso ha sido modificado e ingresado al flujo correctamente.";
                    btnModificar.Visible = true;
                    btnIngresar.Visible = false;
                    OrdenarListBox(lbDescripcion);
                    txtPaso.Text = "";
                    txtDescripcion.Text = "";
                    txtTiempoEjecucion.Text = "";
                    lblMensajeAccion.Text = "";
                    btnModificar.Visible = false;
                    lblNoPaso.Visible = false;
                    lblDescripcion.Visible = false;
                    lblTiempoEjecucion.Visible = false;
                    txtPaso.Visible = false;
                    txtDescripcion.Visible = false;
                    txtTiempoEjecucion.Visible = false;
                    //txtPaso.Text = "1";
                    txtTiempoEjecucion.Text = "";
                    txtDescripcion.Text = "";
                    btnModificarOK.Visible = true;
                    btnGuardar.Visible = true;
                    lblMensajeAccion.Text = "";
                    btnGuardar.Visible = true;
                
               
                
            }
        }
        protected void lbDescripcion_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (lbDescripcion.Items.Count == 0)
            {
                ddlIDProblema.Enabled = true;
                btnGuardar.Visible = false;
            }
            else
            {
                btnGuardar.Visible = true;
                ddlIDProblema.Enabled = false;
            }
            
        }

        string datosFlujoTemporal = "";
        private void llenarDatosParaModificar()
        {
            //Llenar el textbox IDFLUJO
            txtIDFlujo.Text = "";
            QueryBuilder objBusca_IDFlujo = new QueryBuilder();
            DataTable tbResultadoConsulta3 = new DataTable();
            string sqlbuscaid = "SELECT ID_FLUJO FROM FLUJO";
            tbResultadoConsulta3 = objBusca_IDFlujo.EjecutarQuery(sqlbuscaid);
            for (int k = 0; k < tbResultadoConsulta3.Rows.Count; k++)
            {
                txtIDFlujo.Text = tbResultadoConsulta3.Rows[k].ItemArray[0].ToString();
            }
            //SeMuestraLoQuesedebe();
            //if (string.Compare(ddlIDflujo.SelectedValue.ToString(), ".") == 0)
            //{
            //    lblErrorDDLFlujo.Text = "Debe Seleccionar un ID de Flujo";
            //}
            //else
            //{
            //    
            //    obtenerBDDFlujo();
            //    SeMuestraLoQuesedebe();
            //    //llenar el listbox

            //}
        }
        private void obtenerBDDFlujo()
        {
            //-----------PARTE DE OBTENER EL FLUJO Y PONERLO EN EL LISTBOX
            
            QueryBuilder objBusca_FLUJO = new QueryBuilder();
            DataTable tbResultadoConsulta3 = new DataTable();
            string sqlbuscaflujo = "SELECT FLUJO.PASO, FLUJO.DESCRIPCION_PASO, FLUJO.TIEMPO_EJECUCION FROM FLUJO WHERE ID_FLUJO = " + id_flujo;
            tbResultadoConsulta3 = objBusca_FLUJO.EjecutarQuery(sqlbuscaflujo);
            for (int k = 0; k < tbResultadoConsulta3.Rows.Count; k++)
            {
                lbDescripcion.Items.Add(tbResultadoConsulta3.Rows[k].ItemArray[0].ToString().PadRight(5, '.') 
                    + "| " + tbResultadoConsulta3.Rows[k].ItemArray[1].ToString().PadRight(75, '.') 
                    + "| " + tbResultadoConsulta3.Rows[k].ItemArray[2].ToString());
                datosFlujoTemporal += tbResultadoConsulta3.Rows[k].ItemArray[0].ToString()
                    + "| " + tbResultadoConsulta3.Rows[k].ItemArray[1].ToString()
                    + "| " + tbResultadoConsulta3.Rows[k].ItemArray[2].ToString() + ";";
            }
            //splitear y poner en listbox
            


 
        }
        protected void ddlIDflujo_SelectedIndexChanged(object sender, EventArgs e)
        {
           
        }
        protected void ddlIDProblema_SelectedIndexChanged(object sender, EventArgs e)
        {
                 //busca ID
                QueryBuilder objBusca_IDproblema = new QueryBuilder();
                DataTable tbResultadoConsulta2 = new DataTable();
                string sqlbuscaid = "SELECT ID_PROBLEMA FROM PROBLEMA WHERE DESCRIPCION = '" + ddlIDProblema.SelectedValue.ToString() + "'";
                tbResultadoConsulta2 = objBusca_IDproblema.EjecutarQuery(sqlbuscaid);
                for (int j = 0; j < tbResultadoConsulta2.Rows.Count; j++)
                {
                    id_problema = Convert.ToInt32(tbResultadoConsulta2.Rows[j].ItemArray[0]);
                }
        }


        private void SeMuestraLoQuesedebe()
        {
            lblProblema.Visible = true;
            //lblDescripcion.Visible = true;
            //lblNoPaso.Visible = true;
            //lblTiempoEjecucion.Visible = true;
            //txtPaso.Visible = true;
            //txtDescripcion.Visible = true;
            //txtTiempoEjecucion.Visible = true;
            ddlIDProblema.Visible = false;
            btnModificar.Visible = false;
            //txtPaso.Enabled = true;
            ddlIDProblema.Enabled = false;
            txtDescripcionProblema.Visible = true;
            txtDescripcionProblema.Enabled = false;
            btnOK.Visible = true;
            btnModificarOK.Visible = true;
        }
        private void SeOcultaloquesedebe()
        {
            lblIDFlujo.Visible = false;
            lblProblema.Visible = false;
            lblNoPaso.Visible = false;
            lblDescripcion.Visible = false;
            lblTiempoEjecucion.Visible = false;
            txtPaso.Visible = false;
            txtDescripcion.Visible = false;
            txtTiempoEjecucion.Visible = false;
            ddlIDProblema.Visible = false;
            btnModificar.Visible = false;

            //RequiredFieldValidator1.Enabled = false;
            RequiredFieldValidator2.Enabled  = false;
            //RequiredFieldValidator4.Enabled = false;
        }
        private void OrdenarListBox(ListBox listbox )
        {
            ArrayList  array1 = new ArrayList();
            for (int i = 0; i < listbox.Items.Count; i++)
            {
                array1.Add(listbox.Items[i].ToString());
            }
            array1.Sort();
            listbox.Items.Clear();
            for (int j=0; j<array1.Count; j++)
            {
                listbox.Items.Add(array1[j].ToString());
            }
        }

        protected void txtDescripcionFlujo_TextChanged(object sender, EventArgs e)
        {
            if (modificar == true)
            {
                //busca ID
                QueryBuilder objBusca_IDproblemas = new QueryBuilder();
                DataTable tbResultadoConsultaID = new DataTable();
                string sqlbuscaidprob = "SELECT ID_PROBLEMA FROM PROBLEMA WHERE DESCRIPCION = '" + txtDescripcionProblema.Text.Trim() + "'";
                tbResultadoConsultaID = objBusca_IDproblemas.EjecutarQuery(sqlbuscaidprob);
                for (int j = 0; j < tbResultadoConsultaID.Rows.Count; j++)
                {
                    id_problema = Convert.ToInt32(tbResultadoConsultaID.Rows[j].ItemArray[0]);
                }
                //Se va a obtener los datos para insertar al ListBox
                SeMuestraLoQuesedebe();
                obtenerBDDFlujo();
            }
        }

        protected void btnOK_Click(object sender, EventArgs e)
        {
            Limpiar();
            if (string.Compare(txtIDFlujo.Text, null) == 0)
            {
                lblErrorDDLFlujo.Text = " <<-- Debe ingresar el ID de un flujo. ";
            }
            else
            {
                id_flujo = Convert.ToInt32(txtIDFlujo.Text);
                QueryBuilder objBusca_DescripcionFlujo = new QueryBuilder();
                DataTable tbResultadoConsulta = new DataTable();
                //Llenar el dropdownlist DESCRIPCION del idflujo que se selecciono
                string sqlbuscadescripcion = "SELECT DESCRIPCION_FLUJO FROM FLUJO WHERE ID_FLUJO = " + id_flujo;
                tbResultadoConsulta = objBusca_DescripcionFlujo.EjecutarQuery(sqlbuscadescripcion);
                if (tbResultadoConsulta.Rows.Count == 0)
                {
                    lblErrorDDLFlujo.Text = "El ID del flujo ingresado no tiene datos";
                    btnGuardar.Visible = false;
                }
                else
                {
                    for (int k = 0; k < tbResultadoConsulta.Rows.Count; k++)
                    {
                        txtDescripcionFlujo.Text = tbResultadoConsulta.Rows[k].ItemArray[0].ToString();
                    }

                    //Llenar el dropdownlist DESCRIPCION DEL PROBLEMA dependiendo del IDFLUJO E IDPROBLEMA de tabla FLUJO
                    QueryBuilder objBusca_IDProblemaFlujo = new QueryBuilder();
                    DataTable tbResultadoConsulta2 = new DataTable();
                    string sqlbuscanidproblema = "SELECT PROBLEMA.DESCRIPCION FROM FLUJO INNER JOIN PROBLEMA ON FLUJO.PROBLEMA = PROBLEMA.ID_PROBLEMA WHERE ID_FLUJO = " + id_flujo + " AND ROWNUM < 2";
                    tbResultadoConsulta2 = objBusca_IDProblemaFlujo.EjecutarQuery(sqlbuscanidproblema);
                    for (int k = 0; k < tbResultadoConsulta2.Rows.Count; k++)
                    {
                        //ddlIDProblema.Items.Add(tbResultadoConsulta2.Rows[k].ItemArray[0].ToString());
                        txtDescripcionProblema.Text = tbResultadoConsulta2.Rows[k].ItemArray[0].ToString();
                    }
                    SeMuestraLoQuesedebe();
                    obtenerBDDFlujo();
                    lblErrorDDLFlujo.Text = "";
                }
            }
        }

        protected void btnModificarOK_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < lbDescripcion.Items.Count; i++)
            {
                if (lbDescripcion.Items[i].Selected == true)
                {
                    id_flujo = int.Parse(txtIDFlujo.Text);
                    AccionDatosAModificar();
                    lblNoPaso.Visible = true;
                    lblDescripcion.Visible = true;
                    lblTiempoEjecucion.Visible = true;
                    txtPaso.Visible = true;
                    txtDescripcion.Visible = true;
                    txtTiempoEjecucion.Visible = true;
                    //txtPaso.Text = "";
                    //txtTiempoEjecucion.Text = "";
                    btnModificar.Visible = true;
                    btnModificarOK.Visible = true;                    
                    lblMensajeAccion.Text = "";
                    lblMensaje.Text = "";
                    
                }
                else
                {
                    lblMensajeAccion.Text = "Seleccione del flujo el paso a modificar -->";
                }
            }
        }

        protected void txtDescripcionProblema_TextChanged(object sender, EventArgs e)
        {

        }
    }
}
